Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Несколько безумных вопросов по PHP (Серж.Никитин)
Author Message
Серж.Никитин
Участник форума



Joined: 09 Aug 2005
Posts: 29
Карма: -2
   поощрить/наказать

Location: Челябинск - Тамбов

PostPosted: Fri Jan 20, 2006 8:57 am (написано за 21 минуту 10 секунд)
   Post subject: Несколько безумных вопросов по PHP
Reply with quote

1. Мне часто говорят: "Пишешь ты хорошо, все у тебя работает, только как ты в коде разбираешься? У тебя же ничего не понять". Вот я и думаю, как нужно правильно писать? Зачем ставить отступы, делать комментарии и пр?
2. Контроль ошибок. Пишу много скриптов обработки форм, где приходится принимать большое количество переменных. Столкнулся с такой проблемой: как лучше организовать контроль ошибок (т.е. если посетитель не ввел какое-нибудь одно поле).
Я делаю по своему так:
Code (php): скопировать код в буфер обмена
if (!$login) {$error[]="  <br>";} else {//
if (!$password) {$error[]="  <br>";} else {//
if (!$email) {$error[]="E-mail  <br>";} else {//
//
 
Потом, если массив $error существует, я вывожу его цикл, ну а если нет, уже делаю запись в бд. Как вы думаете, плохой у меня метод?
3. Слой с числом, добавленный спомощью PHP, на уже существующей картинке размером 88x31 или что-то в этом роде.
Делаю мини-рейтинг пользователей, и нифига не понимаю в gd библиотеках, то есть как ими пользоваться. Сказали, что это легко, надо только самовар свой напряч...Значит у меня хуже чем самовар...Ну вот, кто-нибудь может мне подсказать чего-либо? Сейчас объясню подробнее. У меня есть что-то вроде мини-рейтинга (как рейгтинг@mail.ru или top100.rambler) На каждой зарегистрированной в рейтинге странице стоит простенький html-тег
Code (html): скопировать код в буфер обмена
<img (december.com/html/4/element/img.html) src=http://myhost.ru/rating/counter?id=1010 width=88 height=31 border=0 /> (december.com/html/4/element/.html)
, где 1010 - ID пользователя, он же и id в таблице с записями. Ну вот мне нужно чтобы над картинкой (она должна задаваться в файле /rating/counter.php, как мне говорили через header, то есть на самом деле это не картинка а php-скрипт) высвечивалось число, взятое из записи WHERE id = '1010', например stat. Если кто не понял, покажу как примерно выглядит таблица:
Code (any language): скопировать код в буфер обмена
  _________
 |id  |stat|
 |1010|3218|
 |1011|2041|
 |1012|5691|
Заранее благодарю!!!
Back to top
View user's profile Send private message
Миша Спларов
Участник форума



Joined: 17 Nov 2003
Posts: 821
Карма: 65
   поощрить/наказать

Location: Россия, Москва

PostPosted: Fri Jan 20, 2006 10:58 am (спустя 2 часа 1 минуту; написано за 1 минуту 16 секунд)
   Post subject:
Reply with quote

1. tony2001.phpclub.net/doc/standard/
2. Да, плохо. Подумайте, например, о применении шаблонизатора.
3. В мануал заглядывали? Что-нибудь вывести пробовали? Для начала попробуйте. Там на самом деле нет ничего сложного - тем более для вашей задачи.
Back to top
View user's profile Send private message
Алексей С.
Участник форума



Joined: 11 Nov 2004
Posts: 103
Карма: 1
   поощрить/наказать


PostPosted: Fri Jan 20, 2006 12:14 pm (спустя 1 час 15 минут; написано за 1 минуту 8 секунд)
   Post subject:
Reply with quote

Миша Спларов
1. а я думал что Пиар это стандарт кодирования, ну да ладно.
2. метод нормальный - обыкновенный, причем тут шаблонизатор вообще не понятно.
Back to top
View user's profile Send private message
Миша Спларов
Участник форума



Joined: 17 Nov 2003
Posts: 821
Карма: 65
   поощрить/наказать

Location: Россия, Москва

PostPosted: Fri Jan 20, 2006 1:56 pm (спустя 1 час 42 минуты; написано за 12 минут 28 секунд)
   Post subject:
Reply with quote

Алексей С.
2. Как на счёт того, чтобы вставить ошибку под инпутом соответстующим, а не всё в кучу?
Не обязательно шаблонизатор. Я же написал - "например".
Back to top
View user's profile Send private message
Алексей С.
Участник форума



Joined: 11 Nov 2004
Posts: 103
Карма: 1
   поощрить/наказать


PostPosted: Fri Jan 20, 2006 2:29 pm (спустя 32 минуты; написано за 2 минуты 22 секунды)
   Post subject:
Reply with quote

Миша Спларовможно и так.
но лучше ИМХО, вывести в кучу всё сверху, соотвественно заполнить поля формы введеными значениями, и плюс ошибочные поля подсветить КРАСНЫМ)). для этого юзайте сессии, то есть тот же массив $error, пишите значение поля, сообщение об ошибки, можно еще название формы, если форм много
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Fri Jan 20, 2006 3:28 pm (спустя 59 минут; написано за 1 минуту 53 секунды)
   Post subject:
Reply with quote

Серж.Никитин wrote:
Зачем ставить отступы, делать комментарии и пр?
Не делайте. Потом, когда через полгода будете пытаться что-то исправить в своей программе, изменить что-нибудь, и т.д... Вот тогда Вы вспомните, зачем нужны эти отступы, комментарии, и т.д... У Димы Котерова есть очень хорошая набла на эту тему: dklab.ru/chicken/nablas/11.html
Серж.Никитин wrote:
Потом, если массив $error существует, я вывожу его цикл, ну а если нет, уже делаю запись в бд.
Я тоже так делал. Для начала сойдёт :).
Серж.Никитин wrote:
Слой с числом, добавленный спомощью PHP, на уже существующей картинке размером 88x31
Посмотрите какой-нибудь простенький скрипт счётчика, разберитесь, как он работает, и сделайте по аналогии. Шаг «разберитесь, как он работает» пропускать нельзя! Обязательно с внимательным чтением документации и комментариев пользователей.
Back to top
View user's profile Send private message Send e-mail
Серж.Никитин
Участник форума



Joined: 09 Aug 2005
Posts: 29
Карма: -2
   поощрить/наказать

Location: Челябинск - Тамбов

PostPosted: Fri Jan 20, 2006 4:51 pm (спустя 1 час 23 минуты; написано за 1 минуту 5 секунд)
   Post subject:
Reply with quote

Всем сбасибы! С третим вопросом я разобрался по мануалу. Однако появился еще один:
Как проверить существование удаленной картинки?
Back to top
View user's profile Send private message
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Fri Jan 20, 2006 5:26 pm (спустя 35 минут; написано за 30 секунд)
   Post subject:
Reply with quote

getimagesize ?
Ей, вроде, можно и URL в качестве имени подкинуть.
Back to top
View user's profile Send private message Send e-mail
Алексей С.
Участник форума



Joined: 11 Nov 2004
Posts: 103
Карма: 1
   поощрить/наказать


PostPosted: Fri Jan 20, 2006 5:36 pm (спустя 10 минут; написано за 18 секунд)
   Post subject:
Reply with quote

Серж.Никитин
file_get_contents подойдет
Back to top
View user's profile Send private message
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Fri Jan 20, 2006 5:43 pm (спустя 6 минут; написано за 1 минуту 21 секунду)
   Post subject:
Reply with quote

Алексей С.
а если вместо картинки бросают отлуп - "запрошеной вами картинки нету!!! посетите, лучше наш магазин..."?
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Fri Jan 20, 2006 6:57 pm (спустя 1 час 13 минут; написано за 46 секунд)
   Post subject:
Reply with quote

Можно в 2 этапа - получать ответ с помощью file_get_contents (предварительно убедившись в том, что это действительно внешний УРЛ), а потом проверять, картинка ли это с помощью getimagesize
Back to top
View user's profile Send private message Send e-mail
Ksnk
Участник форума



Joined: 24 Jun 2005
Posts: 459
Карма: 49
   поощрить/наказать

Location: СПб

PostPosted: Fri Jan 20, 2006 7:27 pm (спустя 30 минут; написано за 42 секунды)
   Post subject:
Reply with quote

Юpий Насрeтдинов
А зачем 2, если можно в 1? У меня не на картинку getimagesize выдает FALSE! А у вас?
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Fri Jan 20, 2006 9:56 pm (спустя 2 часа 28 минут; написано за 1 минуту 15 секунд)
   Post subject:
Reply with quote

хм, в принципе,
manual wrote:
URL support was added in PHP 4.0.5
... Для какая же функция для работы с изображениями не работала с URL...
Back to top
View user's profile Send private message Send e-mail
Серж.Никитин
Участник форума



Joined: 09 Aug 2005
Posts: 29
Карма: -2
   поощрить/наказать

Location: Челябинск - Тамбов

PostPosted: Fri Jan 20, 2006 11:34 pm (спустя 1 час 38 минут; написано за 6 минут 58 секунд)
   Post subject:
Reply with quote

[hren znaet, offtop naverno]
Опять всем мастерам огромное спасибо за помощь самоварам.
Я сейчас свой поисковик делаю, который ищет в двух полях одновременно (title и text). Тут решил поиграться с phpmyadmin`ом, я же не знаю подробно sql, нажал там "искать" и начал вытворять:
Code (SQL): скопировать код в буфер обмена
SELECT *
FROM `my_topics`
WHERE `title` LIKE '%Да%'
AND `text` LIKE '%Да%'
LIMIT 0 , 30
Потом поменял AND на OR, от балды
Code (SQL): скопировать код в буфер обмена
SELECT *
FROM `my_topics`
WHERE `title` LIKE '%Да%'
OR `text` LIKE '%Да%'
LIMIT 0 , 30
Оказывается это очень хороший запрос, например для поиска новостей: даже если не нашел в теме, ищет в тексте, то есть независют друг от друга. Что вы думаете по этому поводу? И как это пограмотнее написать?

[/offtop]
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Fri Jan 20, 2006 11:40 pm (спустя 6 минут; написано за 36 секунд)
   Post subject:
Reply with quote

Серж.Никитин wrote:
offtop naverno
Ну почему же, ещё один безумный вопрос :))).
Серж.Никитин wrote:
Что вы думаете по этому поводу?
Что идея поиска по двум полям сразу - это полный бред, а вот если с OR, то это уже стандартный приём :)
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML